package cn.wolfcode.luowowo.comment.service;

import cn.wolfcode.luowowo.comment.domain.ScenicspotReply;
import cn.wolfcode.luowowo.comment.domain.ScenicspotComment;
import cn.wolfcode.luowowo.comment.query.ScenicspotCommentQuery;
import org.springframework.data.domain.Page;

import java.util.List;
import java.util.Map;

public interface IScenicspotCommentService {
    /**
     * 新增和更新景点评论
     * @param scenicspotComment
     */
    ScenicspotComment saveOrUpdate(ScenicspotComment scenicspotComment, ScenicspotReply reply);

    /**
     * 分页查询
     * @param qo
     * @return
     */
    Page query(ScenicspotCommentQuery qo);

    /**
     * 查询所有景点评论
     * @return
     */
    List<ScenicspotComment> listAll();

    /**
     * 查询最新的10个评论
     * @return
     */
    List<ScenicspotComment> getCreateTimeTop10();

    /**
     * 根据userId查询分页
     * @param qo
     * @return
     */
    Page queryByUserId(ScenicspotCommentQuery qo);


    Map<String,Integer> getStatisNum();

    /**
     * 给评论加点赞数，并返回操作后的点赞数
     * @param commentId
     * @param i
     * @return
     */
    int addThumbNum(String commentId, int i);

    /**
     * 根据userId查询最近的三条评论
     * @param userId
     * @return
     */
    List<ScenicspotComment> queryTop3(Long userId);

    /**
     * 根据id查询所有点评
     * @param id
     * @return
     */
    List<ScenicspotComment> listAllByUserId(Long id);
}
